home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / converter / limbo4.0 / src / 2d / etc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-16  |  6.7 KB  |  211 lines

  1. #include "includes.h"
  2.  
  3. /**************************************|****************************************
  4. Routine   : LearnUsage
  5. Input  par: none
  6. Output par: none
  7. Global var: none
  8. Function  : Prints out program-usage.
  9. ***************************************|***************************************/
  10.  
  11.  void LearnUsage(void)
  12.   {
  13.    printf("\nLimbo version %s - 2D\n",LIMBOVERSION);
  14.    printf("\nUsage: limbo2d [-options] <command> <file>");
  15.    printf("\n\nCommands:");
  16.    printf("\n e     Encode image");
  17.    printf("\n d     Decode fractal codes");
  18.    printf("\n v     View fractal code informations");
  19.    printf("\n a     Analyze fractal code");
  20.    printf("\n\nOptions:\n");
  21.    printf("\n -x<n>    Maximum 'x' size");
  22.    printf("\n -y<n>    Maximum 'y' size");
  23.    printf("\n -ox<n>   Offset 'x' ");
  24.    printf("\n -oy<n>   Offset 'y'");
  25.    printf("\n -b<n>    Range block size (min 2)");
  26.    printf("\n -d<n>    Delta step");
  27.    printf("\n -n<n>    Use n-level square encoding");
  28.    printf("\n -m<n>    Minimum domain-block list size");
  29.    printf("\n -s<n>    Maximum domain-block list size");
  30.    printf("\n -f<n>    Feature space dimensions");
  31.    printf("\n -r<n>    Feature grid resolution");
  32.    printf("\n -l<n>    Expand decoding at 'l' levels");
  33.    printf("\n -i<n>    Decode iterations");
  34.    printf("\n\n -Qa<n>   Alpha  quant bit");
  35.    printf("\n -Qd<n>   DeltaG quant bit (without a sign bit)");
  36.    printf("\n -Amin<f> Alpha minimum value");
  37.    printf("\n -Amax<f> Alpha maximum value (max. 2.55)");
  38.    printf("\n -Tm<n>   Threshold for main/sub blocks");
  39.    printf("\n            (breakup blocks wiht dl2 greater than <n>)");
  40.    printf("\n -Te<n>   Threshold for shade/edge");
  41.    printf("\n            (make blocks edges with variance greater than <n>)");
  42.    printf("\n -Tp<n>   Threshold for postprocessing of blocks");
  43.    printf("\n            (process blocks with dl2 greater than <n>)");
  44.    printf("\n\n -q    Be quiet");
  45. /*   printf("\n\nEnvironment variables:\n");
  46.    printf("\n Limbo_OrgGfx  = Original graphics files");
  47.    printf("\n Limbo_CmpGfx  = Compare (output) graphics files");
  48.    printf("\n Limbo_FCCodes = Fractal codes in limbo-format");
  49.    printf("\n Limbo_Entropy = Entropy data files"); */
  50.    printf("\n\n");
  51.    MyExit(0);
  52.   }
  53.  
  54. /**************************************|****************************************
  55. Routine   : ErrorHandler
  56. Input  par: int error     (error number pos=fatal neg=nonfatal) 
  57.             char *message (pointer to specific error message string)
  58. Output par: none
  59. Global var: none
  60. Function  : Prints errorname and specific error message to stderr. 
  61.             If error pos then MyExit is called.
  62. ***************************************|***************************************/
  63.  
  64.  void ErrorHandler(int error,char *message)
  65.   {
  66.    char msg[MAXSTRING];
  67.    switch(error)
  68.     {
  69.      case NO_ERROR : strcpy(msg,"No Error");
  70.      break;
  71.      case INITIALIZATION_ERROR : strcpy(msg,"Initialization error");
  72.      break;
  73.      case NO_FREE_MEMORY: strcpy(msg,"No free memory");
  74.      break;
  75.      case UNKNOWN_VARIABLE : strcpy(msg,"Unknown variable");
  76.      break;
  77.      case OUT_OF_RANGE: strcpy(msg,"Out of range");
  78.      break;
  79.      case VAL_OUT_OF_RANGE : strcpy(msg,"Value out of range");
  80.      break;
  81.      case UNABLE_TO_OPEN : strcpy(msg,"Unable to open");
  82.      break;
  83.      case UNABLE_TO_CLOSE: strcpy(msg,"Unable to close");
  84.      break;
  85.      case ERROR_WRITING : strcpy(msg,"Error writing");
  86.      break;
  87.      case ERROR_READING: strcpy(msg,"Error reading");
  88.      break;
  89.      case FILEMODE_ERROR: strcpy(msg,"Filemode error");
  90.      break;
  91.      case FATAL_ERROR: strcpy(msg,"Fatal error");
  92.      break;
  93.      case RUNTIME_ERROR: strcpy(msg,"Runtime error");
  94.      break;
  95.      case UNKNOWN_ERROR: strcpy(msg,"Unknown error");
  96.      break;
  97.      case UNKNOWN_FORMAT : strcpy(msg,"Not in reconizable Limbo format");
  98.      break;
  99.      case UNKNOWN_GFXFORMAT : strcpy(msg,"Not in reconizable graphic format");
  100.      break;
  101.      case UNKNOWN_OPTION : strcpy(msg,"Unknown option");
  102.      break;
  103.      case NONFATAL_ERROR : strcpy(msg,"Nonfatal error");
  104.      break;
  105.      case NULL_POINTER : strcpy(msg,"Null pointer");
  106.      break;
  107.      case OUT_OF_RANGE2 : strcpy(msg,"Out of range");
  108.      break;
  109.      case BITMAPSIZE_ERROR : strcpy(msg,"Bitmapsize error");
  110.      break;
  111.      case WRONG_FORMAT : strcpy(msg,"Wrong format");
  112.      break;
  113.      case NOFILE : strcpy(msg,"No file");
  114.      break;
  115.      case LEARN_USAGE: 
  116.       {
  117.        LearnUsage();
  118.        MyExit(LEARN_USAGE);
  119.       }
  120.      break;
  121.      default:strcpy(msg,"Ooups - error not in errortable");
  122.      break;
  123.     }
  124.    fprintf(stderr,"\n%s: %s\n",msg,message);
  125.    if (error>0) MyExit(error); /* fatal error */
  126.   }
  127.  
  128. /**************************************|****************************************
  129. Routine   : SaveAndView
  130. Input  par: char *fil (filename without any extension)
  131.             BitMap *map (bitmap to save)
  132. Output par: none
  133. Global var: none
  134. Function  : Saves bitmap, converts it from 'hips' to 'pgm', views it by 'xv'
  135.             (unix only).
  136. ***************************************|***************************************/
  137.  
  138.  void SaveAndView(char *fil, BitMap *map)
  139.   {
  140.    char syscmd[MAXARRAY],file[MAXARRAY];
  141.    
  142.    SaveBitMap(fil,map,CMPGFX);
  143.    
  144.    strcpy(syscmd,VIEWER); /* viewer */
  145.    strcat(syscmd," ");
  146.    strcpy(file,CMPGFX);
  147.    strcat(file,fil);
  148.    strcat(syscmd,file);
  149.    if (map->ImgType==GRAYIMG) strcat(syscmd,PGMSFX);
  150.    if (map->ImgType==RGBIMG) strcat(syscmd,PPMSFX);
  151.    strcat(syscmd," ");
  152.    strcat(syscmd,RUN);
  153.    vprintf(stderr,"\nViewing...\n   File:'%s'",file);
  154.    system(syscmd);
  155.   }
  156.  
  157.  void SaveAndView3D(char *fil, BitMap3D *map)
  158.   {
  159.    char syscmd[MAXARRAY],file[MAXARRAY];
  160.  
  161.    SaveBitMap3D(fil,map,CMPGFX);
  162.    
  163.    strcpy(syscmd,ANIMVIEWER); 
  164.    strcat(syscmd," ");
  165.    strcpy(file,CMPGFX);
  166.    strcat(file,fil);
  167.    strcat(syscmd,file);
  168.    if (map->ImgType==GRAYIMG) strcat(syscmd,PGMSFX);
  169.    if (map->ImgType==RGBIMG) strcat(syscmd,PPMSFX);  
  170.    strcat(syscmd," ");
  171.    strcat(syscmd,RUN);
  172.    vprintf(stderr,"\nViewing...\n   File:'%s'",file);
  173.    /*system(syscmd);  */
  174.   }
  175.  
  176. /**************************************|****************************************
  177. Routine   : Smallies
  178. ***************************************|***************************************/
  179.  
  180.  void MyExit(int errno)
  181.   {
  182.    exit(errno);
  183.   }
  184.  
  185.  int ReadInteger(char *convstring)
  186.   {
  187.    int temp=atoi(convstring);
  188.    if (temp<0) temp = -temp;       /* only read positive ints */
  189.    return(temp);
  190.   }
  191.  
  192.  float ReadFloat(char *convstring)
  193.   {
  194.    float temp=atof(convstring);
  195.    if (temp<0.0) temp = -temp;     /* only read positive floats */
  196.    return(temp);
  197.   }
  198.  
  199.  char *GetEnv(char *environment)
  200.   {
  201.    char *env=getenv(environment);
  202.    if (env==NULL) strcpy(env," ");
  203.    return  env;
  204.   }
  205.  
  206.  unsigned char Invers(unsigned char x)
  207.   {
  208.    if (x>127) return 0;
  209.    else return 255;
  210.   }
  211.